﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace MLMBonus.Engine
{
    /// <summary>
    /// IBonusContext is the interface used by the bonus engine to hold long-term information. It will be used explicitly 
    /// to inject the pay and promotion dependencies and can be used to hold bonus-run-specific values (like cumulative pool shares).
    /// </summary>
    public interface IBonusContext
    {
        void Pay(IVolume Volume, INode Distributor, string Description, int? Level, decimal Amount, decimal? Percent);
        void Promote(INode Distributor, string OldRank, string NewRank);
    }
}
